package com.ruoyi.business.service;

import java.util.List;
import java.util.concurrent.ExecutionException;

import com.ruoyi.business.domain.JtSmsLog;
import com.ruoyi.common.core.domain.AjaxResult;

/**
 * 短信记录Service接口
 * 
 * @author Alan Zhang
 * @date 2025-03-31
 */
public interface IJtSmsLogService 
{
    /**
     * 查询短信记录
     * 
     * @param smsId 短信记录主键
     * @return 短信记录
     */
    public JtSmsLog selectJtSmsLogBySmsId(Long smsId);

    /**
     * 查询短信记录列表
     * 
     * @param jtSmsLog 短信记录
     * @return 短信记录集合
     */
    public List<JtSmsLog> selectJtSmsLogList(JtSmsLog jtSmsLog);

    /**
     * 新增短信记录
     * 
     * @param jtSmsLog 短信记录
     * @return 结果
     */
    public int insertJtSmsLog(JtSmsLog jtSmsLog);

    /**
     * 修改短信记录
     * 
     * @param jtSmsLog 短信记录
     * @return 结果
     */
    public int updateJtSmsLog(JtSmsLog jtSmsLog);

    /**
     * 批量删除短信记录
     * 
     * @param smsIds 需要删除的短信记录主键集合
     * @return 结果
     */
    public int deleteJtSmsLogBySmsIds(String smsIds);

    /**
     * 删除短信记录信息
     * 
     * @param smsId 短信记录主键
     * @return 结果
     */
    public int deleteJtSmsLogBySmsId(Long smsId);


    /**
     * 发送短信码
     * @param countryCode 国家码
     * @param phoneNumber 手机号
     * @param type 1注册 2登录 3 修改信息
     * @return
     */
    public AjaxResult sendSms(Integer countryCode, String phoneNumber, int type) throws Exception;

    /**
     * 校验 短信码
     * @param countryCode 国家码
     * @param phoneNumber 手机号
     * @param smsCode 短信码
     * @param type 1注册 2登录 3 修改信息
     * @return
     */
    public boolean validSmsCode(Integer countryCode, String phoneNumber, String smsCode, int type);
}
